#ifndef SCENE_H
#define SCENE_H

#include <vector>
#include "octree.h"
#include "color.h"
#include "object.h"

class Scene{
    public:
        Scene();
        ~Scene();

        void addObject(Object *);
        Object *getObject(unsigned int) const;
        unsigned int getObjectsSize() const;
        void deleteObject(Object *);
        int nextObjectsID();
        void setNextObjectsID(int);

        void setOctrees(std::vector<Octree *>);
        Octree *getOctree(unsigned int) const;
        Octree *getOctree(Object *) const;
        unsigned int getOctreesSize() const;

        void draw(bool, bool, bool, bool);

        void changeDepth(int);
        Octree *addOctreeOf(Object *);
        void octree(bool);

    private:
        std::vector<Object *> objects;
        std::vector<Octree *> octrees;

        int octreeDepth;
        int idObjects;
};

#endif
